// Datum                                Naam programmeur
//   Beschrijving                         Storynummer
//======================================================
// 19/11/2013                           Leys Thomas (c1026794)
//   Creatie MaakETicketView              UC 11.1 S01
// 24/11/2013                           Leys Thomas (c1026794)
//   Extra velden toegevoegd              UC 11.1 S03
//14/12/2013							Lieven Drijkoningen(c1017178)
//	Printen van het eticket				  UC 11.2 

package views.createViews;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;

import core.models.dataModels.createModels.MaakETicketModel;
import core.models.domainModel.ETicket;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import javax.swing.JButton;


import controllers.createControllers.MaakETicketController;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

import javax.swing.JPanel;
import javax.swing.border.TitledBorder;

import java.awt.Color;

import javax.swing.UIManager;

public class MaakETicketView extends JFrame {
	private static final long serialVersionUID = 1L;	
	
	private MaakETicketModel eTicketModel;
	private JButton btnMaakEticket;
	private JTextField txtVoornaam;
	private JTextField txtPaspoortNummer;
	private JTextField txtAchternaam;
	private JTextField txtGeboortedatum;
	private JLabel lblTicketnummer;
	private JTextField txtTicketNummer;
	private JPanel pnlVluchtGegevens;
	private JLabel lblVluchtNummer;
	private JTextField txtVluchtNummer;
	private JPanel pnlVertrekGegevens;
	private JLabel lblVertrekLuchthaven;
	private JTextField txtVertrekLuchthaven;
	private JLabel lblVertrekTijdstip;
	private JTextField txtVertrekTijdstip;
	private JPanel pnlAankomstGegevens;
	private JLabel lblAankomstLuchthaven;
	private JTextField txtAankomstLuchthaven;
	private JLabel lblAankomstTijdstip;
	private JTextField txtAankomstTijdstip;
	private JPanel pnlZitplaats;
	private JLabel lblType;
	private JTextField txtZitplaatsType;
	private JLabel lblBeschrijving;
	private JTextField txtZitplaatsNaam;
	private JButton btnPrintEticket;
	
	public MaakETicketView(MaakETicketModel model) {
		this.eTicketModel = model;
		
		setTitle("E-ticket aanmaken");
		btnPrintEticket = new JButton("Print E-Ticket");
		btnMaakEticket = new JButton("Maak E-Ticket");
		btnMaakEticket.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// Maak E-ticket aan voor de passagier
				MaakETicketController.handleView(eTicketModel);
			}
		});
		
		JPanel pnlPassagiersGegevens = new JPanel();
		pnlPassagiersGegevens.setBorder(new TitledBorder(null, "Passagier", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		
		lblTicketnummer = new JLabel("Ticketnummer");
		
		txtTicketNummer = new JTextField();
		txtTicketNummer.setForeground(Color.BLACK);
		txtTicketNummer.setBackground(Color.WHITE);
		txtTicketNummer.setEnabled(false);
		txtTicketNummer.setEditable(false);
		txtTicketNummer.setColumns(10);
		
		pnlVluchtGegevens = new JPanel();
		pnlVluchtGegevens.setBorder(new TitledBorder(null, "Vlucht", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		
		
		GroupLayout groupLayout = new GroupLayout(getContentPane());
		groupLayout.setHorizontalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGap(25)
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createSequentialGroup()
							.addComponent(btnMaakEticket)
							.addGap(18)
							.addComponent(btnPrintEticket))
						.addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
							.addComponent(pnlVluchtGegevens, 0, 0, Short.MAX_VALUE)
							.addGroup(groupLayout.createSequentialGroup()
								.addComponent(lblTicketnummer)
								.addGap(48)
								.addComponent(txtTicketNummer, GroupLayout.PREFERRED_SIZE, 208, GroupLayout.PREFERRED_SIZE))
							.addComponent(pnlPassagiersGegevens, GroupLayout.DEFAULT_SIZE, 713, Short.MAX_VALUE)))
					.addGap(57))
		);
		groupLayout.setVerticalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGap(21)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblTicketnummer)
						.addComponent(txtTicketNummer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addPreferredGap(ComponentPlacement.UNRELATED)
					.addComponent(pnlPassagiersGegevens, GroupLayout.PREFERRED_SIZE, 79, GroupLayout.PREFERRED_SIZE)
					.addGap(18)
					.addComponent(pnlVluchtGegevens, GroupLayout.PREFERRED_SIZE, 208, GroupLayout.PREFERRED_SIZE)
					.addPreferredGap(ComponentPlacement.UNRELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(btnMaakEticket)
						.addComponent(btnPrintEticket))
					.addContainerGap(147, Short.MAX_VALUE))
		);
		
		lblVluchtNummer = new JLabel("Vluchtnummer");
		
		txtVluchtNummer = new JTextField();
		txtVluchtNummer.setForeground(Color.BLACK);
		txtVluchtNummer.setBackground(Color.WHITE);
		txtVluchtNummer.setEnabled(false);
		txtVluchtNummer.setEditable(false);
		txtVluchtNummer.setColumns(10);
		
		pnlVertrekGegevens = new JPanel();
		pnlVertrekGegevens.setBorder(new TitledBorder(null, "Vertrek", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		
		pnlAankomstGegevens = new JPanel();
		pnlAankomstGegevens.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Aankomst", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		
		lblAankomstLuchthaven = new JLabel("Luchthaven");
		
		txtAankomstLuchthaven = new JTextField();
		txtAankomstLuchthaven.setForeground(Color.BLACK);
		txtAankomstLuchthaven.setEnabled(false);
		txtAankomstLuchthaven.setEditable(false);
		txtAankomstLuchthaven.setColumns(10);
		txtAankomstLuchthaven.setBackground(Color.WHITE);
		
		lblAankomstTijdstip = new JLabel("Tijdstip");
		
		txtAankomstTijdstip = new JTextField();
		txtAankomstTijdstip.setForeground(Color.BLACK);
		txtAankomstTijdstip.setEnabled(false);
		txtAankomstTijdstip.setEditable(false);
		txtAankomstTijdstip.setColumns(10);
		txtAankomstTijdstip.setBackground(Color.WHITE);
		GroupLayout gl_pnlAankomstGegevens = new GroupLayout(pnlAankomstGegevens);
		gl_pnlAankomstGegevens.setHorizontalGroup(
			gl_pnlAankomstGegevens.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_pnlAankomstGegevens.createSequentialGroup()
					.addContainerGap()
					.addComponent(lblAankomstLuchthaven)
					.addGap(27)
					.addComponent(txtAankomstLuchthaven, GroupLayout.PREFERRED_SIZE, 206, GroupLayout.PREFERRED_SIZE)
					.addGap(18)
					.addComponent(lblAankomstTijdstip)
					.addGap(71)
					.addComponent(txtAankomstTijdstip, GroupLayout.DEFAULT_SIZE, 237, Short.MAX_VALUE)
					.addContainerGap())
		);
		gl_pnlAankomstGegevens.setVerticalGroup(
			gl_pnlAankomstGegevens.createParallelGroup(Alignment.LEADING)
				.addGap(0, 47, Short.MAX_VALUE)
				.addGroup(gl_pnlAankomstGegevens.createSequentialGroup()
					.addGroup(gl_pnlAankomstGegevens.createParallelGroup(Alignment.BASELINE)
						.addComponent(txtAankomstLuchthaven, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(lblAankomstTijdstip)
						.addComponent(txtAankomstTijdstip, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(lblAankomstLuchthaven))
					.addContainerGap(50, Short.MAX_VALUE))
		);
		pnlAankomstGegevens.setLayout(gl_pnlAankomstGegevens);
		
		pnlZitplaats = new JPanel();
		pnlZitplaats.setBorder(new TitledBorder(null, "Zitplaats", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		GroupLayout gl_pnlVluchtGegevens = new GroupLayout(pnlVluchtGegevens);
		gl_pnlVluchtGegevens.setHorizontalGroup(
			gl_pnlVluchtGegevens.createParallelGroup(Alignment.LEADING)
				.addGroup(Alignment.TRAILING, gl_pnlVluchtGegevens.createSequentialGroup()
					.addContainerGap()
					.addGroup(gl_pnlVluchtGegevens.createParallelGroup(Alignment.TRAILING)
						.addComponent(pnlZitplaats, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 695, Short.MAX_VALUE)
						.addComponent(pnlVertrekGegevens, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 681, Short.MAX_VALUE)
						.addGroup(Alignment.LEADING, gl_pnlVluchtGegevens.createSequentialGroup()
							.addComponent(lblVluchtNummer)
							.addGap(31)
							.addComponent(txtVluchtNummer, GroupLayout.PREFERRED_SIZE, 207, GroupLayout.PREFERRED_SIZE))
						.addComponent(pnlAankomstGegevens, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 695, Short.MAX_VALUE))
					.addContainerGap())
		);
		gl_pnlVluchtGegevens.setVerticalGroup(
			gl_pnlVluchtGegevens.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_pnlVluchtGegevens.createSequentialGroup()
					.addGroup(gl_pnlVluchtGegevens.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblVluchtNummer)
						.addComponent(txtVluchtNummer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addComponent(pnlVertrekGegevens, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE)
					.addPreferredGap(ComponentPlacement.RELATED)
					.addComponent(pnlAankomstGegevens, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE)
					.addPreferredGap(ComponentPlacement.UNRELATED)
					.addComponent(pnlZitplaats, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE)
					.addContainerGap(30, Short.MAX_VALUE))
		);
		
		lblType = new JLabel("Type");
		
		txtZitplaatsType = new JTextField();
		txtZitplaatsType.setForeground(Color.BLACK);
		txtZitplaatsType.setBackground(Color.WHITE);
		txtZitplaatsType.setEditable(false);
		txtZitplaatsType.setEnabled(false);
		txtZitplaatsType.setColumns(10);
		
		lblBeschrijving = new JLabel("Beschrijving");
		
		txtZitplaatsNaam = new JTextField();
		txtZitplaatsNaam.setForeground(Color.BLACK);
		txtZitplaatsNaam.setBackground(Color.WHITE);
		txtZitplaatsNaam.setEditable(false);
		txtZitplaatsNaam.setEnabled(false);
		txtZitplaatsNaam.setColumns(10);
		GroupLayout gl_pnlZitplaats = new GroupLayout(pnlZitplaats);
		gl_pnlZitplaats.setHorizontalGroup(
			gl_pnlZitplaats.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_pnlZitplaats.createSequentialGroup()
					.addContainerGap()
					.addComponent(lblType)
					.addGap(59)
					.addComponent(txtZitplaatsType, GroupLayout.PREFERRED_SIZE, 207, GroupLayout.PREFERRED_SIZE)
					.addGap(18)
					.addComponent(lblBeschrijving)
					.addGap(46)
					.addComponent(txtZitplaatsNaam, GroupLayout.DEFAULT_SIZE, 252, Short.MAX_VALUE)
					.addContainerGap())
		);
		gl_pnlZitplaats.setVerticalGroup(
			gl_pnlZitplaats.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_pnlZitplaats.createSequentialGroup()
					.addGroup(gl_pnlZitplaats.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblType)
						.addComponent(txtZitplaatsType, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(lblBeschrijving)
						.addComponent(txtZitplaatsNaam, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addContainerGap(18, Short.MAX_VALUE))
		);
		pnlZitplaats.setLayout(gl_pnlZitplaats);
		
		lblVertrekLuchthaven = new JLabel("Luchthaven");
		
		txtVertrekLuchthaven = new JTextField();
		txtVertrekLuchthaven.setBackground(Color.WHITE);
		txtVertrekLuchthaven.setForeground(Color.BLACK);
		txtVertrekLuchthaven.setEnabled(false);
		txtVertrekLuchthaven.setEditable(false);
		txtVertrekLuchthaven.setColumns(10);
		
		lblVertrekTijdstip = new JLabel("Tijdstip");
		
		txtVertrekTijdstip = new JTextField();
		txtVertrekTijdstip.setBackground(Color.WHITE);
		txtVertrekTijdstip.setForeground(Color.BLACK);
		txtVertrekTijdstip.setEditable(false);
		txtVertrekTijdstip.setEnabled(false);
		txtVertrekTijdstip.setColumns(10);
		GroupLayout gl_pnlVertrekGegevens = new GroupLayout(pnlVertrekGegevens);
		gl_pnlVertrekGegevens.setHorizontalGroup(
			gl_pnlVertrekGegevens.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_pnlVertrekGegevens.createSequentialGroup()
					.addContainerGap()
					.addComponent(lblVertrekLuchthaven)
					.addGap(27)
					.addComponent(txtVertrekLuchthaven, GroupLayout.PREFERRED_SIZE, 206, GroupLayout.PREFERRED_SIZE)
					.addGap(18)
					.addComponent(lblVertrekTijdstip)
					.addGap(71)
					.addComponent(txtVertrekTijdstip, GroupLayout.DEFAULT_SIZE, 237, Short.MAX_VALUE)
					.addContainerGap())
		);
		gl_pnlVertrekGegevens.setVerticalGroup(
			gl_pnlVertrekGegevens.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_pnlVertrekGegevens.createSequentialGroup()
					.addGroup(gl_pnlVertrekGegevens.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblVertrekLuchthaven)
						.addComponent(txtVertrekLuchthaven, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(lblVertrekTijdstip)
						.addComponent(txtVertrekTijdstip, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addContainerGap(50, Short.MAX_VALUE))
		);
		pnlVertrekGegevens.setLayout(gl_pnlVertrekGegevens);
		pnlVluchtGegevens.setLayout(gl_pnlVluchtGegevens);
		
		JLabel lblVoornaam = new JLabel("Voornaam");
		
		JLabel lblAchternaam = new JLabel("Achternaam");
		
		JLabel lblGeboortedatum = new JLabel("Geboortedatum");
		
		JLabel lblPaspoortnummer = new JLabel("Paspoortnummer");
		
		txtVoornaam = new JTextField();
		txtVoornaam.setForeground(Color.BLACK);
		txtVoornaam.setBackground(Color.WHITE);
		txtVoornaam.setEnabled(false);
		txtVoornaam.setEditable(false);
		txtVoornaam.setColumns(10);
		
		txtPaspoortNummer = new JTextField();
		txtPaspoortNummer.setForeground(Color.BLACK);
		txtPaspoortNummer.setBackground(Color.WHITE);
		txtPaspoortNummer.setEnabled(false);
		txtPaspoortNummer.setEditable(false);
		txtPaspoortNummer.setColumns(10);
		
		txtAchternaam = new JTextField();
		txtAchternaam.setForeground(Color.BLACK);
		txtAchternaam.setBackground(Color.WHITE);
		txtAchternaam.setEnabled(false);
		txtAchternaam.setEditable(false);
		txtAchternaam.setColumns(10);
		
		txtGeboortedatum = new JTextField();
		txtGeboortedatum.setForeground(Color.BLACK);
		txtGeboortedatum.setBackground(Color.WHITE);
		txtGeboortedatum.setEnabled(false);
		txtGeboortedatum.setEditable(false);
		txtGeboortedatum.setColumns(10);
		GroupLayout gl_pnlPassagiersGegevens = new GroupLayout(pnlPassagiersGegevens);
		gl_pnlPassagiersGegevens.setHorizontalGroup(
			gl_pnlPassagiersGegevens.createParallelGroup(Alignment.LEADING)
				.addGroup(Alignment.TRAILING, gl_pnlPassagiersGegevens.createSequentialGroup()
					.addContainerGap()
					.addGroup(gl_pnlPassagiersGegevens.createParallelGroup(Alignment.LEADING)
						.addComponent(lblVoornaam)
						.addComponent(lblPaspoortnummer))
					.addGap(16)
					.addGroup(gl_pnlPassagiersGegevens.createParallelGroup(Alignment.TRAILING)
						.addComponent(txtPaspoortNummer, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 187, Short.MAX_VALUE)
						.addComponent(txtVoornaam, GroupLayout.DEFAULT_SIZE, 187, Short.MAX_VALUE))
					.addGap(18)
					.addGroup(gl_pnlPassagiersGegevens.createParallelGroup(Alignment.LEADING)
						.addComponent(lblAchternaam)
						.addComponent(lblGeboortedatum))
					.addGap(29)
					.addGroup(gl_pnlPassagiersGegevens.createParallelGroup(Alignment.LEADING)
						.addComponent(txtGeboortedatum, GroupLayout.DEFAULT_SIZE, 231, Short.MAX_VALUE)
						.addComponent(txtAchternaam, GroupLayout.DEFAULT_SIZE, 187, Short.MAX_VALUE))
					.addContainerGap())
		);
		gl_pnlPassagiersGegevens.setVerticalGroup(
			gl_pnlPassagiersGegevens.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_pnlPassagiersGegevens.createSequentialGroup()
					.addGroup(gl_pnlPassagiersGegevens.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblVoornaam)
						.addComponent(txtVoornaam, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(lblAchternaam)
						.addComponent(txtAchternaam, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(gl_pnlPassagiersGegevens.createParallelGroup(Alignment.BASELINE)
						.addComponent(txtPaspoortNummer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(lblPaspoortnummer)
						.addComponent(lblGeboortedatum, GroupLayout.PREFERRED_SIZE, 14, GroupLayout.PREFERRED_SIZE)
						.addComponent(txtGeboortedatum, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addContainerGap(48, Short.MAX_VALUE))
		);
		pnlPassagiersGegevens.setLayout(gl_pnlPassagiersGegevens);
		getContentPane().setLayout(groupLayout);
		
		VulScherm(eTicketModel.get_eTicket());
		
		//Printen van het Eticket
		//Lieven Drijkoningen
		btnPrintEticket.addActionListener(new ActionListener() 
		{
			public void actionPerformed(ActionEvent e) 
			{
				btnMaakEticket.setVisible(false);
				btnPrintEticket.setVisible(false);
				MaakETicketView view = MaakETicketView.this;				
				print(view);
				btnMaakEticket.setVisible(true);
				btnPrintEticket.setVisible(true);
			}
		});
	}
	
	public void VulScherm(ETicket ticket) {
		txtTicketNummer.setText(ticket.getTicketNummer() + "");
		txtVoornaam.setText(ticket.getVoornaam());
		txtAchternaam.setText(ticket.getAchternaam());
		txtPaspoortNummer.setText(ticket.getPaspoortNummer());
		txtGeboortedatum.setText(ticket.getGeboortedatum());
		txtVluchtNummer.setText(ticket.getVluchtNummer());
		txtVertrekLuchthaven.setText(ticket.getVertrekLuchthaven().getLuchthavenNaam());
		txtVertrekTijdstip.setText(ticket.getVertrekTijdstip());
		txtAankomstLuchthaven.setText(ticket.getAankomstLuchthaven().getLuchthavenNaam());
		txtAankomstTijdstip.setText(ticket.getAankomstTijdStip());
		if (ticket.getZitplaats().getZitplaatsType() != null) {
			if (ticket.getZitplaats().getZitplaatsType().equals("E")) {
				txtZitplaatsType.setText("Economy");
			} else if(ticket.getZitplaats().getZitplaatsType().equals("B")) {
				txtZitplaatsType.setText("Business");
			}
		}
		if (ticket.getZitplaats().getZitplaatsNaam() != null) {
			txtZitplaatsNaam.setText(ticket.getZitplaats().getZitplaatsNaam());
		}
	}
	//Printen van het eticket
	//Lieven Drijkoningen
	public void print(JFrame t)
	{
		final JFrame frame = t;
		PrinterJob job = PrinterJob.getPrinterJob();
		job.setJobName("Print component");
		
		job.setPrintable(new Printable()		
		{
			@Override
			public int print(Graphics arg0, PageFormat arg1, int arg2)
					throws PrinterException
			{
				if(arg2>0)
				{
					return Printable.NO_SUCH_PAGE;
				}
				Graphics2D g2d = (Graphics2D)arg0;
				g2d.translate(arg1.getImageableX(), arg1.getImageableY());
				g2d.scale(0.50, 0.5);
				frame.getContentPane().paint(g2d);
				return Printable.PAGE_EXISTS;
			}
		});
		
		if(job.printDialog()== false)
		{
			return;
		}
		
		try
		{
			job.print();
		}
		
		catch (PrinterException ex)
		{
			ex.getMessage();
		}
	}
}
